Term Deposit Events Lifecycle Guide

This brief guide describes a representative, sample lifecycle for term deposits. With a term deposit, you lock away an amount of money for an agreed length of time (the 'term'). Early withdrawal can mean extra fees and charges for the account holder. We can't explore every event, so we'll focus on the most typical loan events. System initiated activities, such as interest accrual, interest capitalization,  and so on, won't be covered by this guide.

Scenario

In this scenario, the origination process for a term deposit has already taken place, and an API is invoked for the creation of a term deposit. The following events occur:

  • Term deposit account creation.
  • Term deposit funding.
  • Early (premature) withdrawal.
  • Manual rollover.

Lifecycle Diagram

Legend

Legend API

The API URL that's used to carry out this business process.

API action

API request (typically, a command to perform an operation).

Legend Events The event type that's emanated. 
Event Business event emanating after the process is completed by the system. 
Business process Business process in the system.
End of business process Completion of the business process in the system. 

Tip: Click diagram to expand.

Term Deposit Lifecycle Diagram

Term Deposit Creation

API
The API that is used for the creation of a term deposit.

POST /v2.0.0/holdings/deposits/termDeposits

 

Event
The event that's emanated at term deposit creation.

deposits.createDeposit.depositCreated

 

Event Payload

baseDetails

Typically contains all the basic term deposit information – such as the term deposit reference, system name, transaction reference, and the effective date of the event - and is defaulted for all events.

maturityDate

Indicates the maturity date of the term deposit.

contractAmount Indicates the term deposit amount.
feeDetails Contains the fee definitions for the term deposit. For example, a fee for early (premature) withdrawal. 

Note: All the subsequent objects carry the individual, salient property details of the term deposit.

Sample Code: Term Deposit Creation Event

{
  "specversion": "BBBBBBB",
  "type": "AAAAAAAAA",
  "subject": "DDDDDDDD",
  "source": "eeeee",
  "id": "bbbbbbb",
  "time": "BBBBB",
  "correlationid": "cccccc",
  "serviceid": "ee",
  "channelid": "cc",
  "organizationid": "bbbbbbbb",
  "tenantid": "cccccc",
  "businesskey": "DDDDDDDDD",
  "sequenceno": 1,
  "authorization": "ccccccccc",
  "customfilterid": "eee",
  "operationinstanceid": "ccc",
  "sequenceinstanceid": "e",
  "priority": 1,
  "data": {
  "productName": "dddddddd",
  "originalContractDate": "ee",
  "tenor": "ddd"
  "maturityDate": "dddddddd"
  "contractAmount":"eeeeeeee"
    "baseDetails": [
      {
        "contractReference": "DDDDDD",
        "systemReference": "CCCC",
        "companyReference": "BBBBB",
        "eventName": "",
        "baseEventIdentifier": "b",
        "effectiveDate": "ddddddddd",
        "bookingDate": "EEEE",
        "contractCurrency": "AAAAAA",
        "channel": "BBBBBBBB",
        "branch": "eeeeee",
        "lineOfBusiness": "CCCCCCCC",
        "activityDateTimeStamp": "ccccccccc",
        "transactionReference": "ddddd",
        "reversalIndicator": false,
        "originationReference": "",
        "contractStatus": "BBB",
        "accountId": "BBBBB",
        "overdue": "",
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        "balances": [
          {
            "balanceName": "cccccccc",
            "closingBalance": "A",
            "dateType": "A",
            "debitTotalAmount": "",
            "creditTotalAmount": "bbbbbbbb",
            "timeStamp": "dddd"
          }
        ]
      }
    ],
    
    "alternateReferences": [
      {
        "alternateIdType": "eeeeeeeee",
        "alternateId": "CCCCC"
      }
    ],
    "party": [
      {
        "partyReference": "eeeeeeeee",
        "partyRole": "bbbbbbbbb"
      }
    ],
    "repaymentDetails": [
      {
        "effectiveDate": "AAAA",
        "schedules": [
          {
            "repaymentType": "B",
            "description": "ddd",
            "paymentMethod": "AAA",
            "paymentFrequency": "dd",
            "paymentFrequencyDescription": "dddddd",
            "payments": [
              {
                "startDate": "bb",
                "endDate": "EEEEEE",
                "numberOfPayments": "e",
                "calculatedPaymentAmount": "AAA"
              }
            ],
            "nextPaymentDate": "EE"
          }
        ]
      }
    ],
   
    "interest": [
      {
        "rateName": "bbbb",
        "rateDescription": "",
        "interestConditions": [
          {
            "effectiveDate": "BBB",
            "rateTierType": "CCCC",
            "tierDetails": [
              {
                "fixedRate": "BBBBB",
                "floatingIndex": "D",
                "periodicDetails": [
                  {
                    "periodicIndex": "bbbbb",
                    "periodicType": "cc",
                    "periodicRate": "CCCC",
                    "periodicPeriod": "CCC",
                    "periodicMethod": "",
                    "initialResetDate": "AA",
                    "periodicReset": "AAAAAAA",
                    "nextResetDate": "ccccc"
                  }
                ],
                "margins": [
                  {
                    "marginType": "ccccccc",
                    "marginOperand": "b",
                    "marginRate": "c"
                  }
                ],
                "tierAmount": "E",
                "tierPercent": "",
                "effectiveRate": "cccc",
                "linkedRateIndicator": "BBBBBBBB"
              }
            ]
          }
        ]
      }
    ],
    "settlementDetails": [
      {
        "payinSettlement": [
          {
            "payinPaymentTypes": [
              {
                "payinPaymentType": "aaaaaaaaa",
                "description": "AAA"
              }
            ],
            "payinDetails": [
              {
                "payInPoProduct": "eeeee",
                "payInAccount": "B",
                "payInBeneficiary": "ddd"
              }
            ]
          }
        ],
        "payoutSettlement": [
          {
            "payoutDetails": [
              {
                "payoutAccount": "aaaaaaa",
                "payoutBeneficiary": "eeee",
                "payOutPoProduct": "cccccccc"
              }
            ],
            "payOutPropertyClasses": [
              {
                "propertyClassId": "DDDDDDDD",
                "propertyClassName": "CCC"
              }
            ],
            "payOutProperties": [
              {
                "propertyId": "cc",
                "propertyName": "d"
              }
            ]
          }
        ],
        "defaultSettlementAccounts": [
          {
            "defaultSettlementAccount": ""
          }
        ]
      }
    ],
    "officerDetails": [
      {
        "primaryOfficer": "BBBBBBBBB",
        "otherOfficers": [
          {
            "otherOfficer": "c",
            "otherOfficerRole": ""
          }
        ]
      }
    ],
    "productCategoryId": "dddd",
    "shortTitles": [
      {
        "language": "CCCCCCC",
        "shortTitle": "BBBBBBB"
      }
    ],
    "coolingOffDate": "aaaaaaaaa",
    "renewalDate": "EEE"
  }


Term Deposit Funding

API
The API that's used to fund the term deposit.

POST /v1.1.0/order/payments/exceptions/bookEntries

 

Event
The event that's emanated at term deposit funding.

deposits.fund.fullyFunded

 

Event Payload

baseDetails

Typically contains all the basic term deposit information – such as the term deposit reference, system name, transaction reference, the effective date of the transaction, and the currency of the term deposit - and is defaulted for all events.

balances Contains the details of the amount credited, and the balances of the term deposit impacted by funding.
Sample Code: Term Deposit Funding Event

{
  "specversion": "BBBBBBB",
  "type": "AAAAAAAAA",
  "subject": "DDDDDDDD",
  "source": "eeeee",
  "id": "bbbbbbb",
  "time": "BBBBB",
  "correlationid": "cccccc",
  "serviceid": "ee",
  "channelid": "cc",
  "organizationid": "bbbbbbbb",
  "tenantid": "cccccc",
  "businesskey": "DDDDDDDDD",
  "sequenceno": 1,
  "authorization": "ccccccccc",
  "customfilterid": "eee",
  "operationinstanceid": "ccc",
  "sequenceinstanceid": "e",
  "priority": 1,
  "data": {
     
    "baseDetails": [
      {
        "contractReference": "DDDDDD",
        "systemReference": "CCCC",
        "companyReference": "BBBBB",
        "eventName": "",
        "baseEventIdentifier": "b",
        "effectiveDate": "ddddddddd",
        "bookingDate": "EEEE",
        "contractCurrency": "AAAAAA",
        "channel": "BBBBBBBB",
        "branch": "eeeeee",
        "lineOfBusiness": "CCCCCCCC",
        "activityDateTimeStamp": "ccccccccc",
        "transactionReference": "ddddd",
        "reversalIndicator": false,
        "originationReference": "",
        "contractStatus": "BBB",
        "accountId": "BBBBB",
        "overdue": "",
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        "balances": [
          {
            "balanceName": "cccccccc",
            "closingBalance": "A",
            "dateType": "A",
            "debitTotalAmount": "",
            "creditTotalAmount": "bbbbbbbb",
            "timeStamp": "dddd"
          }
        ]
      }
    ],
  }

      




Sample Code: Loan Repayment Event Payload

{
  "specversion": "BBBBBBB",
  "type": "AAAAAAAAA",
  "subject": "DDDDDDDD",
  "source": "eeeee",
  "id": "bbbbbbb",
  "time": "BBBBB",
  "correlationid": "cccccc",
  "serviceid": "ee",
  "channelid": "cc",
  "organizationid": "bbbbbbbb",
  "tenantid": "cccccc",
  "businesskey": "DDDDDDDDD",
  "sequenceno": 1,
  "authorization": "ccccccccc",
  "customfilterid": "eee",
  "operationinstanceid": "ccc",
  "sequenceinstanceid": "e",
  "priority": 1,
  "data": {
    "baseDetails": [
      {
        "contractReference": "DDDDDD",
        "systemReference": "CCCC",
        "companyReference": "BBBBB",
        "eventName": "",
        "baseEventIdentifier": "b",
        "effectiveDate": "ddddddddd",
        "bookingDate": "EEEE",
        "contractCurrency": "AAAAAA",
        "channel": "BBBBBBBB",
        "branch": "eeeeee",
        "lineOfBusiness": "CCCCCCCC",
        "activityDateTimeStamp": "ccccccccc",
        "transactionReference": "ddddd",
        "reversalIndicator": false,
        "originationReference": "",
        "contractStatus": "BBB",
        "accountId": "BBBBB",
        "overdue": "",
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
			"adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        "balances": [
          {
            "balanceName": "cccccccc",
            "closingBalance": "A",
            "dateType": "AAAAA",
            "debitTotalAmount": "bbbbbb",
            "creditTotalAmount": "bbbbbbbb",
            "timeStamp": "dddd"
          }
        ]
      }
    ],
	 "numberOfInstallments": "",
     "paymentHolidays": [
	 {
            "paymentType": "B",
            "description": "ddd",
            "billType": "AAA",
            "billTypeDescription": "dd",
            "holidayStartDate": "dddddd",
            "holidayPeriods": [
              {
                "holidayDate": "bb",
                "originalPaymentAmount": "EEEEEE",
                "newPaymentAmount": "FFFF",
                }
            ],
	 
	 "cancelledHolidays": [
	 {
		 
            "cancelledHolidayDate": "EE",
			"cancelledOriginalPaymentAmount": "AAAA",,
			"cancelledNewPaymentAmount": "BBBB",
			
          }
        ]
      }
	  ]
  }
  
}


Early (Premature) Withdrawal

API
The API that's used for a premature withdrawal on a term deposit.

POST /v4.0.0/holdings/deposits/redeemDeposits

 

Event
The event that's emanated when a term deposit is fully or partially redeemed.

deposits.redeem.redeemed

 

Event Payload

baseDetails

Typically contains all the basic term deposit information – such as the term deposit reference, system name, transaction reference, the effective date of the transaction, and the currency of the term deposit - and is defaulted for all events.

balances Contains the details of the amount debited, and the balances of the term deposit impacted by the early withdrawal.
Sample Code: Term Deposit Premature Withdrawal

{
  "specversion": "BBBBBBB",
  "type": "AAAAAAAAA",
  "subject": "DDDDDDDD",
  "source": "eeeee",
  "id": "bbbbbbb",
  "time": "BBBBB",
  "correlationid": "cccccc",
  "serviceid": "ee",
  "channelid": "cc",
  "organizationid": "bbbbbbbb",
  "tenantid": "cccccc",
  "businesskey": "DDDDDDDDD",
  "sequenceno": 1,
  "authorization": "ccccccccc",
  "customfilterid": "eee",
  "operationinstanceid": "ccc",
  "sequenceinstanceid": "e",
  "priority": 1,
  "data": {
    
    "baseDetails": [
      {
        "contractReference": "DDDDDD",
        "systemReference": "CCCC",
        "companyReference": "BBBBB",
        "eventName": "",
        "baseEventIdentifier": "b",
        "effectiveDate": "ddddddddd",
        "bookingDate": "EEEE",
        "contractCurrency": "AAAAAA",
        "channel": "BBBBBBBB",
        "branch": "eeeeee",
        "lineOfBusiness": "CCCCCCCC",
        "activityDateTimeStamp": "ccccccccc",
        "transactionReference": "ddddd",
        "reversalIndicator": false,
        "originationReference": "",
        "contractStatus": "BBB",
        "accountId": "BBBBB",
        "overdue": "",
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        "balances": [
          {
            "balanceName": "cccccccc",
            "closingBalance": "A",
            "dateType": "A",
            "debitTotalAmount": "",
            "creditTotalAmount": "bbbbbbbb",
            "timeStamp": "dddd"
          }
        ]
      }
    ],
  }



Manual Rollover

API
The API that's used for a manual rollover of a term deposit.

PUT/v1.0.0/holdings/deposits/termDeposits/rollovers

 

Event
The event that's emanated when a term deposit is manually rolled over.

deposits.rollover.depositRolledOver

 

Event Payload

baseDetails

Typically contains all the basic term deposit information – such as the term deposit reference, system name, transaction reference, the effective date of the transaction, and the currency of the term deposit - and is defaulted for all events.

Sample Code: Term Deposit Manual Rollover Event

{
  "specversion": "BBBBBBB",
  "type": "AAAAAAAAA",
  "subject": "DDDDDDDD",
  "source": "eeeee",
  "id": "bbbbbbb",
  "time": "BBBBB",
  "correlationid": "cccccc",
  "serviceid": "ee",
  "channelid": "cc",
  "organizationid": "bbbbbbbb",
  "tenantid": "cccccc",
  "businesskey": "DDDDDDDDD",
  "sequenceno": 1,
  "authorization": "ccccccccc",
  "customfilterid": "eee",
  "operationinstanceid": "ccc",
  "sequenceinstanceid": "e",
  "priority": 1,
  "data": {
     
    "baseDetails": [
      {
        "contractReference": "DDDDDD",
        "systemReference": "CCCC",
        "companyReference": "BBBBB",
        "eventName": "",
        "baseEventIdentifier": "b",
        "effectiveDate": "ddddddddd",
        "bookingDate": "EEEE",
        "contractCurrency": "AAAAAA",
        "channel": "BBBBBBBB",
        "branch": "eeeeee",
        "lineOfBusiness": "CCCCCCCC",
        "activityDateTimeStamp": "ccccccccc",
        "transactionReference": "ddddd",
        "reversalIndicator": false,
        "originationReference": "",
        "contractStatus": "BBB",
        "accountId": "BBBBB",
        "overdue": "",
        "feeDetails": [
          {
            "feeName": "DDDDDDD",
            "feeAmount": "",
            "feeCurrency": "bbbbb",
            "adjustFeeAmount": "aaaa",
            "adjustFeeReason": ""
          }
        ],
        "balances": [
          {
            "balanceName": "cccccccc",
            "closingBalance": "A",
            "dateType": "A",
            "debitTotalAmount": "",
            "creditTotalAmount": "bbbbbbbb",
            "timeStamp": "dddd"
          }
        ]
      }
    ],
   }


Accounting Events

Accounting events are emitted in addition to business events for a variety of banking products, including term deposit accounts, savings accounts, current accounts, and other kinds of bank account. For more information, see the Accounting Event Lifecycle Guide